# Filters added to this controller apply to all controllers in the application.
# Likewise, all the methods added will be available for all controllers.

class ApplicationController < ActionController::Base
  helper :all # include all helpers, all the time
  
  # See ActionController::RequestForgeryProtection for details
  # Uncomment the :secret if you're not using the cookie session store
  protect_from_forgery # :secret => '645733494657cfbfdd97e5c688369f34'

#  include AuthenticatedSystem
  include ProjectSystem
  include LinkingSystem

  # See ActionController::Base for details 
  # Uncomment this to filter the contents of submitted sensitive data parameters
  # from your application log (in this case, all fields with names like "password"). 
  # filter_parameter_logging :password

#  before_filter :login_required
#  before_filter :project_required
#  before_filter :check_rights

  private 

  def check_rights
    pms = ProjectMember.find_all_by_project_id_and_user_id( @project.id, @user.id )
    for pm in pms
      right = pm.role.rights.find_all_by_model_and_action( controller_name, action_name )
      (label = true; break;) if right
    end
    redirect_to(@user) unless label
  end
  
  public

end
